Repository navigation
backfill: name the unbonded-offload probe in the deferral diagnostic (#1802) - #1963
Merged
ryanbr merged 1 commit intoSep 7, 2026
Conversation
…yanbr#1802) On a WHOOP 5/MG that cannot bond, the backfill deferral diagnostic explains the dead end accurately and then stops, without naming the one action that exists: the "Try history sync without pairing" experiment in Test Centre, designed for precisely this strap in precisely this state. Its stage 3 is SET_CLOCK — the thing the diagnostic says never runs. A field report showed an install that had gone weeks in this state while the strap sat in exactly the condition the probe requires (`helloWrittenThisLink= false` is a precondition of the probe, not an obstacle to it). No motion, no steps, no workouts, no Rest, and no route to the one measurement that would settle whether any of it is recoverable. The fix extends `backfillDeferredLine` with two new parameters (`unbondedProbeOptedIn`, `unbondedProbeRetired`) and appends a hint when the structural-unreachable case applies (WHOOP5, unbonded, no hello written): - Not opted in, not retired: names the toggle and says its stage 3 is SET_CLOCK. - Opted in: suppressed — the probe's own lines report what it found. - Retired: names the off/on retry path, referencing ryanbr#1804's false-negative fix. The probe stays opt-in and self-limiting; this is about discoverability, not about running it automatically. The hint does not promise an answer — ryanbr#1804 showed a local teardown can produce a false negative — it says where the toggle is. The default parameter values preserve the old behaviour for any caller that has not been updated, plus the new hint on the unreachable case. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SET_CLOCK— the thing the diagnostic says never runs.backfillDeferredLinewith two new parameters (unbondedProbeOptedIn,unbondedProbeRetired) and appends a hint when the structural-unreachable case applies (WHOOP5, unbonded, no hello written):SET_CLOCK.Files
StalledLinkDiagnostics.kt—backfillDeferredLineextended withunbondedProbeOptedInandunbondedProbeRetiredparameters (defaultfalse); appends probe hint on the structural-unreachable case.WhoopBleClient.kt— thebeginBackfillcaller now passes the probe's opt-in and retired state.StalledLinkDiagnosticsTest.kt— 5 new tests covering the probe hint (not opted in, opted in, retired, non-unreachable cases, default params).Test plan
./gradlew testFullDebugUnitTest --tests "com.noop.ble.StalledLinkDiagnosticsTest"— all existing + 5 new tests./gradlew compileFullDebugKotlin— no compile errorsGenerated with Devin